<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // ES6中关于Class类的静态方法
        // 类中使用static关键字修饰的方法为静态方法，不需要实例化类，直接使用 类名.方法() 调用

        class Demo {
            // 当一个方法中没有this关键字的使用时，此方法调用就没有必要new（实例化）成对象来调用
            // 建议直接可以使用类名Demo直接调用，那么次方法为静态方法，前面要使用static关键字修饰
            static add(a,b){
                //console.log(this); // 类结构
                return a + b; 
            }
        }

        // 通过类名.方法名() 调用
        console.log(Demo.add(10,20));


        // 在ES5中我们我们也可以写类似方法
        function Demo2(){
            this.fn = function(){

            }
        }
        // 将Demo2当成对象给添加一个方法
        Demo2.add = function(a, b){
            return a + b;
        }
        console.log(Demo2.add(100,200));
    
        

        //面试题：
        Function.one = function(){
            console.log("one");
        }
        Function.prototype.two = function(){
            console.log("two");
        }
        function aa(){

        }
       // aa.one(); // TypeError: aa.one is not a function
        aa.two(); // two






    </script>
</body>
</html>